package upcweb.web;

import java.util.ArrayList;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

import upcweb.modelo.ClsTipoServicio;
import upcweb.negocio.BsTipoServicio;

@Controller
public class TipoServicioController {
	public String[] tabvalues = new String[2];

	@RequestMapping(value = "/tiposervicio", method = RequestMethod.POST)
	protected ModelAndView index(HttpServletRequest request,
			HttpServletResponse response) {

		ModelAndView MAV = new ModelAndView("tiposervicios/mvTipoServicio");
		System.out.println("Ingreso a pagina Mantenimiento Tipo Servicio");

		try {
			if (request.getParameter("accountusername") != null && request.getParameter("accountusername").isEmpty()) {
				tabvalues[0] = "active";
				tabvalues[1] = "";
			}
			else {
				tabvalues[0] = "";
				tabvalues[1] = "active";
			}
			
			BsTipoServicio oBsTipoServicio = new BsTipoServicio();
			ArrayList<ClsTipoServicio> lstTipoServicio = oBsTipoServicio
					.ListarTipoServicio_Todo();

			MAV.addObject("listaTipoServicio", lstTipoServicio);
			MAV.addObject("TAB1", tabvalues[0]);
			MAV.addObject("TAB2", tabvalues[1]);

			return MAV;
		} catch (Exception ex) {
			return new ModelAndView("redirect:index.html");
		}
	}

	@RequestMapping(value = "/guardartserv", method = RequestMethod.POST)
	protected ModelAndView guardarServicio(HttpServletRequest request,
			HttpServletResponse response) {

		tabvalues[0] = "";
		tabvalues[1] = "active";

		System.out.println("Ingreso a pagina Guardar Tipo Servicio");

		ModelAndView MAV = new ModelAndView("tiposervicios/mvMensaje");
		String mensaje = "";

		try {
			ClsTipoServicio oClsTipoServicio = new ClsTipoServicio();
			oClsTipoServicio.setIdTypeService(Integer.parseInt(request
					.getParameter("pCodigo")));
			oClsTipoServicio.setName(request.getParameter("pNombre"));
			oClsTipoServicio.setState(request.getParameter("pEstado"));
			BsTipoServicio oBsTipoServicio = new BsTipoServicio();

			int iTipo = Integer.parseInt(request.getParameter("pTipo"));


			if (iTipo == 1) {
				oBsTipoServicio.ActualizarTipoServicio(oClsTipoServicio);
				mensaje = "1|Datos Actualizados con Exito";
			} else if (iTipo == 2) {
				int newIndex=oBsTipoServicio.NuevoIndiceTipoServicio(oClsTipoServicio);
				if(newIndex!=0){
				oClsTipoServicio.setIdTypeService(newIndex);
				oBsTipoServicio.RegistrarTipoServicio(oClsTipoServicio);
				mensaje = "1|Datos Registrados con Exito";}else{
					mensaje = "0|Ya se encuentra un Tipo Servicio con el mismo Nombre";
				}
            }else if(iTipo==3){
                //oBsTipoServicio.EliminadoFisicoTipoServicio(oClsTipoServicio);
            	oBsTipoServicio.EliminadoLogicoTipoServicio(oClsTipoServicio);
                mensaje="1|Datos Eliminados con Exito";
        }

			System.out.println("ediatr nuevo Tipo Servicio");
			
			MAV.addObject("strMensaje", mensaje);
			MAV.addObject("TAB1", tabvalues[0]);
			MAV.addObject("TAB2", tabvalues[1]);
			

			return MAV;
		} catch (Exception ex) {
			mensaje = "0|Problemas al Realizar la Operacion";
			return new ModelAndView("tiposervicios/mvMensaje", "strMensaje",
					mensaje);
		}

	}

	@RequestMapping(value = "/printtablets", method = RequestMethod.POST)
	protected ModelAndView PrintTableTS(HttpServletRequest request,
			HttpServletResponse response) {
		try {
			BsTipoServicio oBsTipoServicio = new BsTipoServicio();
			//ArrayList<ClsTipoServicio> lstTipoServicio = oBsTipoServicio.ListarTipoServicio_Todo();
			String parametros[]= new String[2];
			parametros[0]= request.getParameter("tx_buscarnom");
			parametros[1]= request.getParameter("ddlEstado");		
			ArrayList<ClsTipoServicio> lstTipoServicio = oBsTipoServicio.ListarTipoServicio_Filtro(parametros);
			System.out.println("Se carga Pagina con Tabla");
			return new ModelAndView("tiposervicios/mvListaTablaTipoServicio",
					"listaTipoServicio", lstTipoServicio);
		} catch (Exception ex) {
			return new ModelAndView("tiposervicios/mvMensaje", "strMensaje",
					"Problemas al Cargar Datos");
		}

	}
}
